'''
测试接口:系统操作日志/搜索
作者:王鑫
'''
import time
import unittest
from parameterized import parameterized

from pages.page_login import PageLogin
from pages.page_system_operate_log import PageSystemOperateLog
from utils.driver import WebDriver
from utils.reader import Reader

class SysOperateLogFindPageTest(unittest.TestCase):
    '''
    系统操作日志页面测试类:执行系统操作日志页面的UI测试
    作者:王鑫
    '''
    @classmethod
    def setUpClass(cls) -> None:
        '''
        :return:
        '''
        cls.psol = PageSystemOperateLog()
        cls.login = PageLogin()
        cls.login.do_login('admin','123456')
        time.sleep(1)

    @classmethod
    def tearDownClass(cls) -> None:
        '''
        :return:
        '''
        WebDriver.quit_driver()

    @parameterized.expand(Reader.read_csv('search_log_by_username.csv'))
    def test_search_log_by_username(self, username, expect):
        '''
        对系统操作日志页面的按照账号搜索日志功能进行UI测试
        :param username: 账号
        :param expect: 期望结果,’0‘代表搜索不到日志记录,’1‘代表可以搜索到日志记录
        :return:
        '''
        # 打开系统操作日志页面
        self.psol.open()
        time.sleep(2)
        # 输入账号并点击搜索
        self.psol.do_search(username)
        time.sleep(2)
        # 获取搜索结果
        result = self.psol.get_search_result()

        # 进行断言
        if expect == '0':
            self.assertEqual(0,len(result))
        else:
            self.assertNotEqual(0,len(result))
            for item in result:
                self.assertEqual(username, item.text)